#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>

int main(int argc, char**argv)
{
    if(argc != 3)
        return -1;

    //打开文件
    int fd1 = open(argv[1], O_RDONLY);
    if(fd1 == -1)
    {
        perror("open fd1 error:");
        //printf("%s:%s\n", argv[1], strerror(errno));
        return -1;
    }
    int fd2 = open(argv[2], O_WRONLY|O_CREAT|O_TRUNC, 0777);
    if(fd2 == -1)
    {
        perror("open fd2 error:");
        close(fd1);
        return -1;
    }

    //操作
    //对fd1进行读操作，fd2进行写操作
    
    while(1)
    {
        char buf[16] = {0};
        int re = read(fd1,buf,16);
        if(re == -1)
        {
            printf("cp error\n");
            break;
            //return -1;
        }
        else if(re == 0)
            break;
        write(fd2, buf, re);

    }

    //关闭文件
    close(fd1);
    close(fd2);
}